home *** CD-ROM | disk | FTP | other *** search
/ Delphi 5 for Professionals / DELPHI5.iso / AddOns / Components / TEECHART / Src Code / IEDIPERI.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-10-24  |  3.7 KB  |  152 lines

  1. {****************************************}
  2. {     TeeChart Pro Charting Library      }
  3. {  For Delphi 1,2,3,4 & C++ Builder 1&3  }
  4. { Copyright (c) 1995-98 by David Berneda }
  5. {         All Rights Reserved            }
  6. {****************************************}
  7. unit IEdiPeri;
  8.  
  9. interface
  10.  
  11. uses
  12.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  13.   ExtCtrls, StdCtrls, Teengine;
  14.  
  15. type
  16.   TFormPeriod = class(TForm)
  17.     ENum: TEdit;
  18.     CBAll: TCheckBox;
  19.     RBNum: TRadioButton;
  20.     RBRange: TRadioButton;
  21.     BLabel: TLabel;
  22.     BChange: TButton;
  23.     Bevel1: TBevel;
  24.     Button2: TButton;
  25.     Button3: TButton;
  26.     LCalc: TLabel;
  27.     RGAlign: TRadioGroup;
  28.     procedure FormShow(Sender: TObject);
  29.     procedure RBRangeClick(Sender: TObject);
  30.     procedure RBNumClick(Sender: TObject);
  31.     procedure BChangeClick(Sender: TObject);
  32.     procedure Button2Click(Sender: TObject);
  33.     procedure Button3Click(Sender: TObject);
  34.     procedure CBAllClick(Sender: TObject);
  35.     procedure ENumChange(Sender: TObject);
  36.     procedure RGAlignClick(Sender: TObject);
  37.   private
  38.     { Private declarations }
  39.     Procedure EnableControls(Value:Boolean);
  40.   public
  41.     { Public declarations }
  42.     ThePeriod:Double;
  43.     ThePeriodStyle:TFunctionPeriodStyle;
  44.     TheCanRange:Boolean;
  45.     TheAlignment:TFunctionPeriodAlign;
  46.     TheIsDateTime:Boolean;
  47.   end;
  48.  
  49. implementation
  50.  
  51. {$R *.DFM}
  52. Uses AxisIncr,TeeConst,TeeProcs;
  53.  
  54. procedure TFormPeriod.FormShow(Sender: TObject);
  55. begin
  56.   if (ThePeriodStyle=psRange) and TheCanRange then RBRange.Checked:=True
  57.                                               else RBNum.Checked:=True;
  58.   RGAlign.ItemIndex:=Ord(TheAlignment);
  59.   CBAll.Checked:=ThePeriod=0;
  60.   if RBNum.Checked then
  61.   begin
  62.     if ThePeriod<0 then ThePeriod:=0;
  63.     ThePeriod:=Round(ThePeriod);
  64.   end;
  65.   ENum.Text:=FloatToStr(ThePeriod);
  66.   BLabel.Caption:=GetIncrementText(Self,ThePeriod,TheIsDateTime,True,'');
  67.   RBRange.Enabled:=TheCanRange;
  68.   BChange.Enabled:=TheCanRange;
  69.   EnableControls(RBNum.Checked)
  70. end;
  71.  
  72. Procedure TFormPeriod.EnableControls(Value:Boolean);
  73. begin
  74.   CBAll.Enabled:=Value;
  75.   ENum.Enabled:=Value;
  76.   BChange.Enabled:=not Value;
  77. end;
  78.  
  79. procedure TFormPeriod.RBRangeClick(Sender: TObject);
  80. begin
  81.   if RBRange.Checked then
  82.   begin
  83.     ThePeriodStyle:=psRange;
  84.     EnableControls(False);
  85.     BChange.SetFocus;
  86.   end;
  87. end;
  88.  
  89. procedure TFormPeriod.RBNumClick(Sender: TObject);
  90. begin
  91.   if RBNum.Checked then
  92.   begin
  93.     ThePeriodStyle:=psNumPoints;
  94.     EnableControls(True);
  95.     ENum.SetFocus;
  96.   end;
  97. end;
  98.  
  99. procedure TFormPeriod.BChangeClick(Sender: TObject);
  100. begin
  101.   RBRange.Checked:=True;
  102.   With TAxisIncrement.Create(Self) do
  103.   try
  104.     IsDateTime :=TheIsDateTime;
  105.     IsExact    :=True;
  106.     Increment  :=ThePeriod;
  107.     IStep      :=FindDateTimeStep(ThePeriod);
  108.     Caption    :=TeeMsg_PeriodRange;
  109.     if ShowModal=mrOk then
  110.     begin
  111.       ThePeriod:=Increment;
  112.       TheIsDateTime:=IsDateTime;
  113.       Self.BLabel.Caption:=GetIncrementText(Self,ThePeriod,TheIsDateTime,True,'');
  114.       Self.CBAll.Checked:=ThePeriod=0;
  115.     end;
  116.   finally
  117.     Free;
  118.   end;
  119. end;
  120.  
  121. procedure TFormPeriod.Button2Click(Sender: TObject);
  122. begin
  123.   ModalResult:=mrOk;
  124. end;
  125.  
  126. procedure TFormPeriod.Button3Click(Sender: TObject);
  127. begin
  128.   ModalResult:=mrCancel;
  129. end;
  130.  
  131. procedure TFormPeriod.CBAllClick(Sender: TObject);
  132. begin
  133.   if CBAll.Checked then
  134.   begin
  135.     ENum.Text:='0';
  136.     ThePeriod:=0;
  137.   end;
  138. end;
  139.  
  140. procedure TFormPeriod.ENumChange(Sender: TObject);
  141. begin
  142.   ThePeriod:=StrToFloat(ENum.Text);
  143.   CBAll.Checked:=ThePeriod=0;
  144. end;
  145.  
  146. procedure TFormPeriod.RGAlignClick(Sender: TObject);
  147. begin
  148.   TheAlignment:=TFunctionPeriodAlign(RGAlign.ItemIndex);
  149. end;
  150.  
  151. end.
  152.